﻿using System;
using System.Windows.Forms;
using XCI.Helper;
using XCI.Windows;

namespace XCI.Test
{
    public partial class FormTest2 : BaseForm
    {
        public FormTest2()
        {
            InitializeComponent();
            if (!WinFormHelper.IsDesignMode())
            {
                SplashScreenHelper.Hide();
                //_popupGridControlPagingEdit1.ModelType = typeof(SysUser);
                _popupGridControlPagingEdit1.DisplayMember = "Name";
                _popupGridControlPagingEdit1.ValueMember = "Id";
                //_popupGridControlPagingEdit1.CloseUpConfirmSelection = false;
                _popupGridControlPagingEdit1.PagingMode = PaginationMode.Infinite;
            }
        }

        private void Form2_Load(object sender, EventArgs e)
        {
        }

        //private void popupGridEdit1_QueryList(object sender, XCI.Windows.QueryListEventArgs e)
        //{
        //    //服务器模式
        //    //e.ListTask = async () =>
        //    //{
        //    //    var result = await UserService.Instance.SelectPageListAsync(Map.New.AddObject(e.Info).IfNotEmptyAdd("Name", e.Filter));
        //    //    return PageList.From(result);
        //    //};

        //    //本地模式
        //    //e.ListTask = async () =>
        //    //{
        //    //    return await Task.Factory.StartNew(() =>
        //    //    {
        //    //        if (userList == null) userList = UserService.Instance.SelectList(new UserFilter());
        //    //        Func<SysUser, bool> predicate = null;
        //    //        if (!string.IsNullOrEmpty(e.Filter))
        //    //        {
        //    //            predicate = p => p.Account != null && p.Account.Contains(e.Filter)
        //    //                             || p.Spell != null && p.Spell.Contains(e.Filter)
        //    //                             || p.Name != null && p.Name.Contains(e.Filter);
        //    //        }
        //    //        return PageList.From(userList.Page(e.Info, predicate));
        //    //    });
        //    //};
        //}

        //private void popupGridEdit1_QueryItem(object sender, QueryItemEventArgs e)
        //{
        //    if (e.EditValue == null) return;

        //    var ids = e.EditValue.ToString().SplitToArray();
        //    if (ids.Length > 0)
        //    {
        //        //多选模式
                
        //        //服务器模式
        //        e.Task = async () =>
        //        {
        //            var taskList = new List<Task<SysUser>>();
        //            foreach (var id in ids)
        //            {
        //                var task = SysUserService.Instance.SelectByIdAsync(id);
        //                taskList.Add(task);
        //            }

        //            var taskResult = await Task.WhenAll(taskList);
        //            return new ArrayList(taskResult);
        //        };

        //        //本地模式
        //        e.Task = async () =>
        //        {
        //            return await Task.Factory.StartNew(() =>
        //            {
        //                // if (userList == null) userList = UserService.Instance.SelectListAsync(new UserFilter());
        //                var dataList = new ArrayList();
        //                foreach (var id in ids)
        //                {
        //                    //var model = userList.FirstOrDefault(p => p.Id == id);
        //                    //if (model != null) dataList.Add(model);
        //                }
        //                return dataList;
        //            });
        //        };
        //    }
        //    else
        //    {
        //        //单选模式

        //        //服务器模式
        //        e.Task = async () =>
        //        {
        //            return await SysUserService.Instance.SelectByIdAsync(e.EditValue.ToString());
        //        };

        //        //本地模式
        //        // e.ItemTask = async () =>
        //        // {
        //        //     return await Task.Factory.StartNew(() =>
        //        //     {
        //        //         if (userList == null) userList = UserService.Instance.SelectListAsync(new UserFilter());
        //        //         return userList.FirstOrDefault(p => p.Id == e.EditValue.ToString());
        //        //     });
        //        // };
        //    }
        //}

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show($"EditValue:{_popupGridControlPagingEdit1.EditValue},Text:{_popupGridControlPagingEdit1.Text},Selected:{_popupGridControlPagingEdit1.Selected}");
        }

        private void button3_Click(object sender, EventArgs e)
        {
            //popupGridEdit1.EditValue = "274,264,262";
            _popupGridControlPagingEdit1.EditValue = "264";
        }

        private void Button2_Click(object sender, EventArgs e)
        {

        }
    }
}
